package com.ruoyi.system.domain.wrapper.query;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.system.domain.dao.SysMenu;
import com.ruoyi.system.domain.query.SysMenuQo;

/**
 * 菜单权限查询条件包装
 *
 * @author 尹国春
 * @date 2022-07-25
 */
public class SysMenuWrapperQ {

public static LambdaQueryWrapper<SysMenu> getQueryWrapper(SysMenuQo entity){
    LambdaQueryWrapper<SysMenu> wrapper= getQueryWrapper((SysMenu)entity);
    if(entity.getUserId()!=null && entity.getUserId().trim().length()>0){
        String sql="menu_id in (select menu_id from sys_role_menu where role_id in (select role_id from sys_user_role where user_id={0}))";
        wrapper.apply(sql,entity.getUserId());
    }
    if(entity.getRoleId()!=null && entity.getRoleId().trim().length()>0){
        String sql="menu_id in (select menu_id from sys_role_menu where role_id={0})";
        wrapper.apply(sql,entity.getRoleId());
    }
    return wrapper;
}

public static LambdaQueryWrapper<SysMenu> getQueryWrapper(SysMenu entity){
    LambdaQueryWrapper<SysMenu> wrapper= Wrappers.<SysMenu>lambdaQuery();
    if(entity.getMenuId()!=null && entity.getMenuId().trim().length()>0){
        wrapper.eq(SysMenu::getMenuId,entity.getMenuId());
    }
    if(entity.getMenuName()!=null && entity.getMenuName().trim().length()>0){
        wrapper.eq(SysMenu::getMenuName,entity.getMenuName());
    }
    if(entity.getParentId()!=null && entity.getParentId().trim().length()>0){
        wrapper.eq(SysMenu::getParentId,entity.getParentId());
    }
    if(entity.getOrderNum()!=null){
        wrapper.eq(SysMenu::getOrderNum,entity.getOrderNum());
    }
    if(entity.getPath()!=null && entity.getPath().trim().length()>0){
        wrapper.eq(SysMenu::getPath,entity.getPath());
    }
    if(entity.getComponent()!=null && entity.getComponent().trim().length()>0){
        wrapper.eq(SysMenu::getComponent,entity.getComponent());
    }
    if(entity.getIsFrame()!=null){
        wrapper.eq(SysMenu::getIsFrame,entity.getIsFrame());
    }
    if(entity.getIsCache()!=null){
        wrapper.eq(SysMenu::getIsCache,entity.getIsCache());
    }
    if(entity.getMenuType()!=null && entity.getMenuType().trim().length()>0){
        wrapper.eq(SysMenu::getMenuType,entity.getMenuType());
    }
    if(entity.getVisible()!=null && entity.getVisible().trim().length()>0){
        wrapper.eq(SysMenu::getVisible,entity.getVisible());
    }
    if(entity.getStatus()!=null && entity.getStatus().trim().length()>0){
        wrapper.eq(SysMenu::getStatus,entity.getStatus());
    }
    if(entity.getPerms()!=null && entity.getPerms().trim().length()>0){
        wrapper.eq(SysMenu::getPerms,entity.getPerms());
    }
    if(entity.getIcon()!=null && entity.getIcon().trim().length()>0){
        wrapper.eq(SysMenu::getIcon,entity.getIcon());
    }
    if(entity.getUpdateBy()!=null && entity.getUpdateBy().trim().length()>0){
        wrapper.eq(SysMenu::getUpdateBy,entity.getUpdateBy());
    }
    if(entity.getUpdateTime()!=null){
        wrapper.eq(SysMenu::getUpdateTime,entity.getUpdateTime());
    }
    return wrapper;
}
}